#ifndef PROTOTYPE_H_
#define PROTOTYPE_H_

#include "art/ShaderProgram.h"

/**
 * Determines how an object gets drawn.
 */
class Prototype {
protected:
	ShaderProgram* program;
public:
	Prototype();

	/**
	 * Draws the prototype to the screen.
	 */
	virtual void draw() = 0;

	/**
	 * Get the shader program used to render this prototype.
	 */
	ShaderProgram *getProgram() const {
		return program;
	}

	/**
	 * Set the shader program used to render this prototype.
	 */
	void setProgram(ShaderProgram *program) {
		this->program = program;
	}

	virtual ~Prototype();
};

#endif /* PROTOTYPE_H_ */
